package com.AAL.Model;

import java.io.Serializable;
import javax.persistence.*;

import java.sql.Timestamp;
import java.util.List;

/**
 * The persistent class for the TransferingRequest database table.
 * 
 */
@Entity
public class TransferingRequest implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name = "TransferingRequestID")
	private String transferingRequestID;

	@Lob()
	@Column(name = "Notes")
	private String notes;

	@Column(name = "WritingDate")
	private Timestamp writingDate;

	@Column(name = "ProcessingDate")
	private Timestamp processingDate;

	@Column(name = "RequirementDate")
	private Timestamp requirementDate;
	
	// bi-directional many-to-one association to WareHouse
	@ManyToOne(cascade = { CascadeType.REFRESH })
	@JoinColumn(name = "ToWarehouseID")
	private WareHouse toWareHouse;

	// bi-directional many-to-one association to LogForStock
	@OneToMany(mappedBy = "transferingRequest", cascade = { CascadeType.REMOVE,
			CascadeType.REFRESH })
	private List<LogForStock> logForStocks;

	// bi-directional many-to-one association to RequestingDetail
	@OneToMany(mappedBy = "transferingRequest", cascade = { CascadeType.REMOVE,
			CascadeType.REFRESH })
	private List<RequestingDetailsForTransfering> requestingDetailsForTransfering;

	// bi-directional many-to-one association to Employee
	@ManyToOne(cascade = { CascadeType.REMOVE, CascadeType.REFRESH })
	@JoinColumn(name = "EmployeeID")
	private Employee employeeByCoordinator;

	// bi-directional many-to-one association to Employee
	@ManyToOne(cascade = { CascadeType.REFRESH })
	@JoinColumn(name = "Manager")
	private Employee employeeByManager;

	// bi-directional many-to-one association to StatusOfTransferingRequest
	@ManyToOne(cascade = { CascadeType.REFRESH })
	@JoinColumn(name = "StatusOfTransferingRequestID")
	private StatusOfTransferingRequest statusOfTransferingRequest;

	public TransferingRequest() {
	}

	public String getTransferingRequestID() {
		return this.transferingRequestID;
	}

	public void setTransferingRequestID(String transferingRequestID) {
		this.transferingRequestID = transferingRequestID;
	}

	public String getNotes() {
		return this.notes;
	}

	public void setNotes(String notes) {
		this.notes = notes;
	}

	public Timestamp getWritingDate() {
		return this.writingDate;
	}

	public void setWritingDate(Timestamp writingDate) {
		this.writingDate = writingDate;
	}

	public List<LogForStock> getLogForStocks() {
		return this.logForStocks;
	}

	public void setLogForStocks(List<LogForStock> logForStocks) {
		this.logForStocks = logForStocks;
	}

	

	public Employee getEmployeeByCoordinator() {
		return this.employeeByCoordinator;
	}

	public void setEmployeeByCoordinator(Employee employeeByCoordinator) {
		this.employeeByCoordinator = employeeByCoordinator;
	}

	public Employee getEmployeeByManager() {
		return this.employeeByManager;
	}

	public void setEmployeeByManager(Employee employeeByManager) {
		this.employeeByManager = employeeByManager;
	}

	public StatusOfTransferingRequest getStatusOfTransferingRequest() {
		return this.statusOfTransferingRequest;
	}

	public void setStatusOfTransferingRequest(
			StatusOfTransferingRequest statusOfTransferingRequest) {
		this.statusOfTransferingRequest = statusOfTransferingRequest;
	}

	public Timestamp getProcessingDate() {
		return processingDate;
	}

	public void setProcessingDate(Timestamp processingDate) {
		this.processingDate = processingDate;
	}

	public Timestamp getRequirementDate() {
		return requirementDate;
	}

	public void setRequirementDate(Timestamp requirementDate) {
		this.requirementDate = requirementDate;
	}

	public List<RequestingDetailsForTransfering> getRequestingDetailsForTransfering() {
		return requestingDetailsForTransfering;
	}

	public void setRequestingDetailsForTransfering(
			List<RequestingDetailsForTransfering> requestingDetailsForTransfering) {
		this.requestingDetailsForTransfering = requestingDetailsForTransfering;
	}

	public WareHouse getToWareHouse() {
		return toWareHouse;
	}

	public void setToWareHouse(WareHouse toWareHouse) {
		this.toWareHouse = toWareHouse;
	}

}